OpenCV成长之路(9):特征点检测与图像匹配 经验

特征点又称兴趣点、关键点,它是在图像中突出且具有代表意义的一些点,通过这些点我们可以用来识别图像、进行图像配准、进行3D重建等。本文主要介绍OpenCV中几种定位与表示关键点的函数。

jopen 2015-02-12   64407   0

OpenCV图像匹配算法之orb 代码段

//orb.cpp #include "stdafx.h" #include <cv.hpp> #include <highgui.h> #include "utils.h" #include <iostream> using namespace std; void orb(char* path1, char* path2, INFO& info, bool show) { double t1,t

cwf8 2015-01-09   5129   0
OpenCV  

OpenCV图像匹配算法之sift 代码段

//utils.h #ifndef _UTILS_H #define _UTILS_H #include <opencv2/opencv.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include

cwf8 2015-01-09   15109   0
OpenCV  

OpenCV图像匹配算法之freak 代码段

//freak.cpp #include "stdafx.h" #include <cv.hpp> #include <highgui.h> #include "utils.h" #include <iostream> using namespace std; void freak(char* path1, char* path2, INFO& info, bool show) { double

cwf8 2015-01-09   12937   0
OpenCV  

OpenCV图像匹配算法之surf 代码段

//surf.cpp #include "stdafx.h" #include <cv.hpp> #include <highgui.h> #include "utils.h" #include <iostream> using namespace std; void surf(char* path1, char* path2, INFO& info, bool show) { double t1

cwf8 2015-01-09   13282   1
OpenCV  

OpenCV图像匹配算法之brisk 代码段

//brisk.cpp #include "stdafx.h" #include <cv.hpp> #include <highgui.h> #include "utils.h" #include <iostream> using namespace std; void brisk(char* path1, char* path2, INFO& info, bool show) { double

cwf8 2015-01-09   4224   0
OpenCV  

OpenCV图像修复 经验

在OpenCV的“photo.hpp”中定义了一个inpaint函数,可以用来实现图像的修复和复原功能

RapHqi 2016-12-21   44029   0

图像特征提取:cvBlob 经验

cvBlob 是计算机视觉应用中在二值图像里寻找连通域的库.能够执行连通域分析与特征提取。

jopen 2012-12-16   59874   0

图像特征提取三大法宝:HOG特征,LBP特征,Haar特征 经验

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合 SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal 在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

jopen 2015-08-30   907236   0
P8

  OpenCV 处理图像的基础知识 文档

【OpenCV】访问图像中每个像素的值。IplImage是OpenCV中CxCore部分基础的数据结构,用来表示图像,其中Ipl是Intel Image Processing Library的简写。

d478 2014-05-02   4860   0
P94

  显示图像OpenCV开发包 文档

显示图像OpenCV开发包提供了读取各种类型的图像文件、视频内容以及摄像机输入的功能。这些功能是OpenCV开发包中所包含的HighGUI工具集的一部分。我们将使用其中的一些功能编写一段简单的程序,用以读取并在屏幕上显示一张图像。

hezhong159 2011-12-18   8010   0

OpenCV成长之路(1):图像的读写与显示 经验

工欲善其事,必先利其器。学习OpenCV,肯定少不于基本的编程工具与OpenCV库。在Windows平台下你可以选择Visual Studio、CodeBlock等,当然你也可以选择在Linux平台,用VI、codeBlock都是可以的。编程平台的选择看个人爱好以及项目的开发环境。然后是OpenCV库,你可以在这里下载到最新的版本:http://opencv.org/,最近的版本已经到了2.4.7,但是OpenCV2.0以上版本差别都不算太大。关于怎么安装OpenCV,本文就不再详说了,此类教程实在太多,百度一下类似:VS2012+openCV2.4.6应该能找到你想要的结果。

jopen 2015-02-11   27726   0

OpenCV成长之路(4):图像直方图 经验

图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。

jopen 2015-02-12   32512   0

OpenCV成长之路(5):图像直方图的应用 经验

正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用。

jopen 2015-02-12   27253   0
P2

OpenCV成长之路(7):图像滤波 经验

滤波实际上是信号处理里的一个概念,而图像本身也可以看成是一个二维的信号。其中像素点灰度值的高低代表信号的强弱。

jopen 2015-02-12   52183   0
P10

  基于opencv的实时图像采集与远程监控系统 文档

基于OpenCV的实时图像采集与远程监控系统班级:0805姓名:杨学齐学号:200892128一、系统介绍1.1系统功能介绍本系统是基于OpenCV的实时图像采集、远程监控系统,主要分为两个功能模块实时图像采集:实时图像采集利用了OpenCV来实现,利用OpenCV库在定时器的调节下,可以从摄像头直接获取监控对象的图像。为了达到实时效果,必须保证帧频不能太低。实时采集另外一个重点是实时发送,采集到的图像必须实时发送到网络进行传输,因此采集线程和传输线程必须分为不同线程。远程监控:摄像头采集得到的图像是存储在本地的,必须通过网络的传输才可以实现远程监控,由于视频数据量比较大,必须经过压缩后才能传输,本系统采用了Jpeg图像压缩,再通过高性能网卡将压缩后的图像传输出去。监控端接受到数据后,进行Jpeg解压缩后显示。1.2系统架构介绍图像采集端程序架构:由于需要实时进行图像采集和传输,因此必须将图像采集和图像传输分为不同的线程。远程监控端程序架构:监控端一方面进行网络数据接收,另外一方面必须将接收到的数据实时显示出来,也必须采用多个线程。1.3系统关键技术介绍1.3.1OpenCVOpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了HYPERLINK"http://baike.baidu.com/view/14662.htm"\t"_blank"图像处理和计算机视觉方面的很多通用算法1.3.2QTQt是诺基亚开发的一个跨平台的C++图形用户界面HYPERLINK"http://baike.baidu.com/view/330120.htm"\t"_blank"应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全HYPERLINK"http://baike.baidu.com/view/125370.htm"\t"_blank"面向对象的,很容易扩展,并且允许真正地组件编程。基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但Qt具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。1.3.3OpenCV帧与QT图像QImage之间的转化QImage是Qt中的图像对象而IplImage是OpenCV中的对象,使用Qt和OpenCV必须进行两者之间的转化,主要是表示方法不同,位深及RGB之间的转换,这个部分是很重要的,详细代码在下面已经列出。1.3.4Jpeg图像压缩与图像序列化HYPERLINK"http://doc.trolltech.com/4.3/qbytearray.html"\l"QByteArray"QByteArray直接把位图数据传输到网络会给整个网络带来很大的压力,有时网速不高,图像采集的速率虽然很高,但是远程监控端会因为网络原因收不到图像,因此对图像的数据量压缩是很有必要的。这里采用的是QT中Jpeg压缩,需要Jpeg库的支持。压缩之后的数据量大大减少了。Socket发送的数据是没有对象的信息的QImage也不能直接被发送到远程监控端,必须序列化到QByteArray,这是一个字符流,将压缩后的图像对象序列化到QByteArray再进行传输。1.3.5Socket网络传输发送和接受采用Socket直接进行网络传输,能够最大限度的压缩数据包的大小,控制校验图像的格式,图像采集端必须一边采集一边发送,这个同步进行的工作是通过线程来完成的,提供程序的效率。另一方面远程监控端同样需要一边接收数据一边显示,也是通过多线程技术实现的,接收到的数据传递给显示线程,这需要将字符流QByteArray重新组装成一个QImage对象,然后显示出来。这个过程必须有准确的校验否则数据会显示不完整。二、系统关键代码2.1使用OpenCV库定时采集图像intmain(intargc,char*argv[]){CvCapture*camera=cvCreateCameraCapture(0);//建立OpenCV图像捕获对象assert(camera);IplImage*image=cvQueryFrame(camera);assert(image);qDebug()<<"Imagedepth="<<image->depth<<"n";qDebug()<<"ImagenChannels="<<image->nChannels<<"\n";QApplicationa(argc,ar

nhtang111 2016-05-25   1114   0

OpenCV成长之路(2):图像的遍历 经验

我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题。

jopen 2015-02-11   26286   0
P10

  图像处理和图像识别中常用的OpenCV函数 文档

图像处理和图像识别中常用的OpenCV函数

jianhu01 2012-07-01   757   0

特征选择与特征提取 经验

直到有一天我在阅读scikit-learn源码及其文档的时候,偶然间发现scikit-learn将特征选择和特征提取分在了两个文档里进行描述,于是深入进去学习后,终于明白了二者的区别。

jopen 2016-01-18   20008   0
1 2 3 4 5 6 7 8 9 10